The Transmission Control Protocol/Internet Protocol (TCP/IP) suite serves as something of a de facto standard for Internet related communications. The suite enables businesses to merge differing physical networks while giving users access to a common set of services. TCP/IP also provides interoperability between a diversity of networks and other equipment supplied by many different vendors. For more information regarding TCP/IP, see Request For Comment (RFC) 791, “Internet Protocol, Darpa Internet Program Protocol Specification”, September 1981, and RFC 793, “Transmission Control Protocol, Darpa Internet Program Protocol Specification”, September 1981.
Recently, the communications and computing industries have made significant advances toward integrating storage, networking, and inter-processor I/O using other, similar common technologies and protocols. Thus, the movement toward convergence of many, and possibly all, I/O functions using TCP/IP, is growing. If successfully accomplished, convergence holds great potential for reducing the total cost of building, managing, and maintaining large data centers, as well as the distribution of data, due to the ubiquitous, interoperable, and scalable characteristics of IP related technologies.
TCP/IP was originally designed for relatively low speed networks, at least by current standards, and thus protocol processing was typically performed using software. In addition, TCP/IP has historically only dealt with networked I/O. However, current I/O server bandwidths are roughly three to five orders of magnitude greater than before, and the inclusion of storage and inter-processor I/O adds new challenges that usually cannot be adequately handled by software protocol processing alone. Thus, hardware acceleration of TCP/IP processing becomes desirable in order to support ever-increasing server I/O bandwidths, as well as an end goal of converging server I/O using TCP/IP.